using CoreManager.AI.Models;

namespace CoreManager.AI.Services;

/// <summary>
/// AI 服务接口
/// </summary>
public interface IAIService
{
    /// <summary>
    /// 流式聊天
    /// </summary>
    /// <param name="request">聊天请求</param>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>聊天响应流</returns>
    IAsyncEnumerable<ChatResponse> StreamChatAsync(
        ChatRequest request, 
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 获取可用的模型列表
    /// </summary>
    /// <returns>模型列表</returns>
    Task<List<string>> GetAvailableModelsAsync();
}

